package net.yasite.net.httpclient;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import net.yasite.api.BaseAPI;
import net.yasite.api.params.HttpParam;
import net.yasite.net.HttpConstant;
import net.yasite.util.ActivityUtil;
public class HttpUploadClient extends HttpPostClent {
public HttpUploadClient(BaseAPI param) {
super(param);
}
@Override
public void doRequest(BaseAPI param) throws Exception {
HttpContext httpContext = new BasicHttpContext();
((HttpPost)request).setEntity(setPartEntity(param));
response = httpClient.execute(request, httpContext);
excute(response, content, param);
}
private MultipartEntity setPartEntity(BaseAPI param) throws UnsupportedEncodingException{
MultipartEntity multipartContent = new MultipartEntity();
//处理非文件类提交
for(int i = 0; i < param.getValuePair().size(); i++){
if(param.getValuePair().get(i) != null){
multipartContent.addPart(
param.getValuePair().get(i).getName(),
new StringBody(param.getValuePair().get(i).getValue(),
Charset.forName(HTTP.UTF_8)));
}
}
//处理文件类提交
for(int i = 0; i < param.getFileList().size(); i++){
if(param.getFileList().get(i) != null){
multipartContent.addPart(
param.getFileList().get(i).getName(),
new FileBody(new File(param.getFileList().get(i).getValue())));
}
}
return multipartContent;
}
}